From: Sebastian Keller Date: Mon, 21 Oct 2024 19:53:14 +0000 (+0200) Subject: st/theme-node-drawing: Don't skip square top left inset shadow corners X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~185^2^2~19 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=75fa8c8eadcc61b5e5efd6ec5e13a97f6037373c;p=gnome-shell.git st/theme-node-drawing: Don't skip square top left inset shadow corners When the inner radius of the top left corner is 0, the corresponding arc does not get drawn, resulting in a path going from the bottom left corner to the top right corner when the path is closed. Fix this by always including a line_to from the bottom left to the top left corner. Fixes: dde13b30c ("st/theme-node-drawing: Trace the correct path for inset box shadows") Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7996 --- diff --git a/src/st/st-theme-node-drawing.c b/src/st/st-theme-node-drawing.c index 0b2b7b535..395f179b6 100644 --- a/src/st/st-theme-node-drawing.c +++ b/src/st/st-theme-node-drawing.c @@ -972,6 +972,11 @@ paint_inset_box_shadow_to_cairo_context (StThemeNode *node, int inner_radius; inner_radius = MAX (0, outer_radius[ST_CORNER_TOPLEFT] - shadow_spec->spread); + + cairo_line_to (temp_cr, + shrunk_extents_x1, + shrunk_extents_y1 + inner_radius); + if (inner_radius > 0) { cairo_arc (temp_cr,